home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / pccts.zip / readme < prev    next >
Text File  |  1992-12-08  |  9KB  |  232 lines

  1.  
  2.                             Welcome to PCCTS 1.06
  3.  
  4.                                December 1992
  5.  
  6.  
  7.                   Purdue University Electrical Engineering
  8.  
  9.                                 Terence Parr
  10.                                  Hank Dietz
  11.                                  Will Cohen
  12.  
  13.  
  14.                                 INSTALLATION
  15.  
  16. UNIX USERS
  17.  
  18.      If you received your PCCTS copy via email, please see the section
  19. below concerning EMAIL RECIPIENTS.
  20.  
  21.      PCCTS 1.06 includes a number of different programs and examples
  22. in the software release package -- most of which like to live in their
  23. own directories.  The install script will build a standard hierarchy.
  24.  
  25.      The PCCTS executables (antlr, dlg) may be placed anywhere the user
  26. wishes but the install script places them in the bin directory created
  27. during installation.
  28.  
  29.      To begin installation, the user should create a directory (usually
  30. called pccts) where the PCCTS source subtree is to be created.  Place
  31. the pccts.bag file and the install script into this directory and cd
  32. into it.  To install PCCTS, simply type
  33.  
  34.      sh install
  35.  
  36. which will build the standard PCCTS directory hierarchy (under the
  37. directory where you ran the install script), "unbag" all of the files
  38. and build executable versions of antlr and dlg.
  39.  
  40.      The examples associated with PCCTS have makefile variables called
  41. ANTLR, DLG etc... which must be set according to your personal
  42. directory structure before make'ing.  Some variables point to the
  43. PCCTS executables if the PATH environment variable does not include
  44. your bin directory.  Also, there are variables that point to PCCTS
  45. include directories and must be changed if you deviate from the
  46. standard PCCTS installation hierarchy.  antlr and dlg can be built
  47. without executable versions of themselves (antlr and dlg are written
  48. in themselves).  The grammar files for antlr and dlg are included
  49. with this release.
  50.  
  51. NON-UNIX USERS
  52.  
  53.      ANTLR was written using portable (we hope), vanilla K&R-style C.
  54. It has been successfully ported to PC's (large model, Microsoft C
  55. 6.0-- 16-bit integers, 32-bit pointers) and 68020-based Macs.  We do
  56. not provide an installation script for non-Unix users.  You must
  57. interpret the install script and perform the analogous operations on
  58. your machine.  Briefly,
  59.  
  60.      Create a directory for PCCTS.  Go inside.
  61.      Make the following sub-directories:
  62.           antlr dlg h support support/sym support/set support/rexpr
  63.           lang lang/C bin
  64.      Make the unbag executable with:
  65.           cc -o bin/unbag unbag.c
  66.      Run unbag on the main pccts.bag ('unbag pccts.bag').
  67.      Move all of the .bag files to the directories with their name.
  68.      Move genmk.c to the support directory
  69.      Run unbag on all .bag files from within their directories.
  70.      Rename all makefile.user files to makefile (in antlr, dlg, lang/C).
  71.      Make antlr and dlg
  72.      Compile genmk.c
  73.  
  74.      For Mac programmers using MPW (Maciontosh Programmer's Workshop),
  75. an "#ifdef MPW" is included to print error messages that can be
  76. "executed" to highlight the error location.  In other words, the line
  77. in the file where the error occured will be highlighted by hitting
  78. "enter" over the error message.  Add "-d MPW" to your list of compile
  79. flags.  See generic.h in antlr directory.
  80.  
  81. EMAIL VERSION RECIPIENTS
  82.  
  83.      If you received PCCTS via email response from
  84. pccts@ecn.purdue.edu you have one additional installation step to
  85. perform over the ftp folks.  You will have received a number of
  86. bite-size chunks of pccts which are small enough to be emailed (~1500
  87. lines each).  You must reconstruct the PCCTS files before you can
  88. begin installation.  In order to rebuild an original file, you must
  89. have "one.c" which will take the chunks and pack them together.  If
  90. you are a non-UNIX type, you must have the "unbag.c" file which unbags
  91. the bags created by our mail archiver.  UNIX folks use the shell to
  92. unbag as they would for shar files (this will be done automatically by
  93. the install script).
  94.  
  95.      To install PCCTS, place all PCCTS mail messages into a pccts
  96. directory, remove the mail headers from one.c, and install.  Then
  97. compile one.c with:
  98.  
  99.      cc -o one one.c
  100.  
  101. and then type:
  102.  
  103.      ./one f1 f2 ... fn
  104.  
  105. where f1..fn are the parts of PCCTS source sent as chunks (i.e. these
  106. files will be all the files you received NOT including one.c, unbag.c,
  107. README, install and the request acknowledge banner).  There is no need
  108. to remove mail headers from the chunk files and they may appear in any
  109. order.  The subject line of the mail will identify it as a chunk and a
  110. chunk of what file.  The "one" program should be used to put pccts.bag
  111. back together.  You are now in a position to begin normal PCCTS
  112. installation.  All files you receive should go into a pccts directory.
  113.  
  114.      Note that all files which arrive in "chunks" must be put back
  115. together using "one".  Beware that you do not mix chunks from more
  116. than one original file.  For instance, do not specify all chunks that
  117. you collect from the PCCTS mailbot on the "one" command line unless
  118. you have requested only one original file that was split into multiple
  119. files.  Each chunk knows which original file it is a part of, where it
  120. goes in that file and how many total chunks are required to rebuild
  121. that original.
  122.  
  123. WORD SIZE
  124.  
  125.      PCCTS makefiles assume 32-bit integers.  If you have 16-bit
  126. integers (or heaven-forbid another size), you must change set.h in
  127. support/set and output.c in dlg.  Both files have an "#ifdef PC"
  128. preprocessor command to change wordsize definitions.  You can add
  129. another "#ifdef" for your machine or specific wordsize.  If you have
  130. 16-bit integers, you may simply define "PC" as a preprocessor flag (by
  131. changing the makefile variable "CFLAGS" to include "-DPC").
  132.  
  133.                                 TUTORIAL
  134.  
  135.      The advanced tutorial should be placed in a directorty at the
  136. same level as antlr, dlg, support etc...  Do a
  137.  
  138.      sh advtut.bag
  139.  
  140. to unbag (or use the unbag program) and then type
  141.  
  142.      make -s all
  143.  
  144. which will create executables called tut1-tut4.  These executables
  145. correspond to the examples in the tutorial.
  146.  
  147.                               NEW FEATURES
  148.  
  149. The following bullet points are the headers in the file UPDATE106.text:
  150.  
  151. o   Predicated Parsing -- EXTREMELY ALPHA
  152.  
  153. o   1.06 Is Written in 1.00
  154.  
  155. o   ANTLR Compiles Under ANSI C
  156.  
  157. o   Grammar Files, antlr.g and dlg_p.g, Distributed
  158.  
  159. o   Script Generates Makefiles for PCCTS Projects
  160.  
  161. o   DLG Supports Case Insensitive Scanners
  162.  
  163. o   Delayed Lookahead Fetches in Generated Parser
  164.  
  165. o   Tutorials Available
  166.  
  167. o   Error Messages for k>1 Improved
  168.  
  169. o   Trace Facility has Exit Macro
  170.  
  171. o   Resource Limitation
  172.  
  173. o   Rule Prefix Option
  174.  
  175. o   Standard PCCTS Header Generated
  176.  
  177. o   Doubly-Linked AST's
  178.  
  179. o   C++ Compatible Parsers
  180.  
  181.  
  182.                          MACHINE COMPATIBILITY
  183.  
  184. PCCTS Version 1.06 has been successfully tested on the following
  185. platforms:
  186.  
  187. o   Sun 3/60
  188. o   Sun SPARC I, II
  189. o   Encore Multimax running Umax 4.3
  190. o   Sun sparcstation IPX
  191. o   NeXTstation
  192. o   unknown VAX running Ultrix 4.2
  193. o   DEC 5000
  194. o   Linux on 386PC
  195. o   Microsoft C 6.0 on PC OS/2, DOS
  196. o   CSET/2 C compiler on PC OS/2
  197. o   IBM RS6000
  198. o   MIPS 4000
  199.  
  200.  
  201.                            INCOMPATIBILITIES
  202.  
  203.      Due to the bug fixes in 1.06, new ambiguities may appear in your
  204. grammar.  These were always there--ANTLR simply did not find them.
  205. The analysis is more correct.
  206.  
  207.     Calls to zzTRACE are no longer generated by the -gd option.  Now,
  208. zzTRACEIN, zzTRACEOUT are called at the beginning and end of
  209. functions, respectively.
  210.  
  211.      The way in which PCCTS translates actions has been changed; before
  212. they were parsed with a C function, now the #lexclass facility is
  213. being used.  Some differences in translation may be discovered; e.g. a
  214. character may need to be escaped with \ whereas before the simple
  215. character was sufficient.
  216.  
  217.      The user should no longer set the next token of lookahead or the
  218. text of the next token in the lexical analyzer using LA(1) and
  219. LATEXT(1).  This is incompatible with the -gk option; hence, NLA and
  220. NLATEXT should be used instead where the N means next.
  221.  
  222.      The -ga does not generate anything different as the code
  223. generator now dumps both K&R and ANSI with #ifdef's around the ANSI
  224. code.
  225.  
  226.      Previously, no prototype was given when -ga was off.  Now,
  227. prototypes are always generated (with the appropriated #ifdef's).
  228. These prototypes can conflict with the outside environment if the rule
  229. names are things like if and stat (which is a system call).  Use the
  230. -gp prefix option to prefix all functions corresponding to rules with
  231. a string of your choice.
  232.